package cn.px.dao.dto.purchase;

import cn.px.common.bean.BaseDTO;
import cn.px.common.validation.group.UpdateGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @Description 采购付款记录DTO
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class PurchasePaymentOrderDTO extends BaseDTO implements Serializable {

    /**
     * 主键
     */
    @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
    private String id;

    private String reimburseId;
    private String paymentId;
    /**
     * 总需求计划主键
     */
    private String demandPlanId;
    /**
     * 采购计划主键
     */
    private String purchasePlanId;
    /**
     * 采购申请ID
     */
    private String purchaseApplyId;
    /**
     * 采购单ID
     */
    private String purchaseOrderId;
    private String purchaseOrderNo;
    /**
     * 合同ID
     */
    private String contractId;
    /**
     * 合同编号
     */
    private String contractNo;
    /**
     * 供应商ID
     */
    private String supplierId;
    /**
     * 供应商名称
     */
    private String supplierName;
    /**
     * 付款事由
     */
    private Integer item;
    /**
     * 付款金额
     */
    private BigDecimal money;
    /**
     * 美元
     */
    private BigDecimal accountMoney;
    /**
     * 付款时间
     */
    private LocalDate payTime;

    private LocalDate planReimburseTime;

    private LocalDate planReimburseTimeStart;

    private LocalDate planReimburseTimeEnd;
    /**
     * 付款时间开始
     */
    private LocalDate payTimeStart;
    /**
     * 付款时间结束
     */
    private LocalDate payTimeEnd;
    /**
     * 发票号码
     */
    private String invoiceNo;
    /**
     * 币种
     */
    private Integer moneyType;

    /**
     * 汇率
     */
    private BigDecimal exchangeRate;
    private BigDecimal accountExchangeRate;
    /**
     * 美元汇率
     */
    private BigDecimal dollarExchangeRate;
    /**
     * 经办人ID
     */
    private String executorId;
    /**
     * 经办人名称
     */
    private String executorName;
    /**
     * 发票文件
     */
    private String invoiceUrl;
    private String invoiceName;
    /**
     * 备注
     */
    private String remark;
    private Integer status;

    /**
     * 创建人
     */
    private String createdUserId;
    /**
     * 创建人名称
     */
    private String createdUserName;
    /**
     * 创建时间
     */
    private LocalDateTime createdTime;
    /**
     * 创建时间开始
     */
    private LocalDateTime createdTimeStart;
    /**
     * 创建时间结束
     */
    private LocalDateTime createdTimeEnd;
    /**
     * 更新人
     */
    private String updateUserId;
    /**
     * 更新人名称
     */
    private String updateUserName;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 更新时间开始
     */
    private LocalDateTime updateTimeStart;
    /**
     * 更新时间结束
     */
    private LocalDateTime updateTimeEnd;

    private Integer noReimburse;
    /**
     * 关键字
     */
    private String keyword;

}
